import request from '../../req'
import type { PageReqDto, PageDto } from '../../type'
import type { PartnerDto, PartnerReqDto } from './type'

/**
 * 获取合作伙伴列表
 *
 * @param params 请求参数
 * @param params.name 合作伙伴名称
 * @param params PageReqDto 分页请求参数
 * @returns 返回包含合作伙伴列表的 PageRowsDto 对象
 */
export const getPartnerList = async (params: {
    name: string
} | PageReqDto): Promise<PageDto<PartnerDto>> => {
    return request.get('/crm/partners/page', {
        params,
    })
}


/**
 * 添加合作伙伴信息
 *
 * @param data 包含合作商信息的对象
 * @param data.name 合作商名称
 * @param data.logo 合作商Logo的URL
 * @param data.appId 合作商应用的App ID
 * @param data.appSecret 合作商应用的App Secret
 * @returns 返回添加成功后的信息字符串
 */
export const addPartner = async (data: PartnerReqDto): Promise<string> => {
    return request.post('/crm/partners', data)
}


/**
 * 编辑合作伙伴信息
 *
 * @param data 包含合作商信息的对象
 * @param data.id 记录id
 * @param data.name 合作商名称
 * @param data.logo 合作商Logo的URL
 * @param data.appId 合作商应用的App ID
 * @param data.appSecret 合作商应用的App Secret
 * @returns 返回添加成功后的信息字符串
 */
export const editPartner = async (data: PartnerReqDto | {
    id: number
}): Promise<string> => {
    return request.put('/crm/partners', data)
}


/**
 * 删除指定ID的合作商信息
 *
 * @param id 合作商ID
 * @returns 返回操作结果信息
 */
export const deletePartner = async (id: number): Promise<string> => {
    return request.delete(`/crm/partners/${id}`)
}
